package in.data.annotation; import android.os.Parcel; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.util.List; import in.lib.utils.Debug; import in.lib.utils.SerialReaderUtil; import in.lib.utils.SerialWriterUtil; import in.model.base.Model; import lombok.Data; @Data public class CheckinAnnotation extends LocationAnnotation { protected String name; protected String address; protected String website; protected String countryCode; public CheckinAnnotation() { } @Override public CheckinAnnotation createFrom(JsonElement element) { try { JsonObject value = element.getAsJsonObject(); this.name = value.get("name").getAsString(); if (value.has("address") && !value.get("address").isJsonNull()) { this.address = value.get("address").getAsString(); } if (value.has("website") && !value.get("website").isJsonNull()) { this.website = value.get("website").getAsString(); } if (value.has("country_code") && !value.get("country_code").isJsonNull()) { this.countryCode = value.get("country_code").getAsString(); } return this; } catch (Exception e) { e.printStackTrace(); } return null; } @Override public CheckinAnnotation createFrom(Parcel parcel) { super.createFrom(parcel); return this; } @Override public List<? extends Model> createListFrom(JsonElement element) { return null; } @Override public String getVersion() { return "47f810fc-42d8-4c28-8653-37a0bacfc4c4"; } @Override public CheckinAnnotation read(SerialReaderUtil util) { if (super.read(util) != null) { try { String version = util.readString(); if (!version.equals(getVersion())) return null; this.name = util.readString(); this.address = util.readString(); this.website = util.readString(); this.countryCode = util.readString(); return this; } catch (Exception e) { Debug.out(e); } } return null; } @Override public void write(SerialWriterUtil util) { super.write(util); try { util.writeString(getVersion()); util.writeString(name); util.writeString(address); util.writeString(website); util.writeString(countryCode); } catch (Exception e) { Debug.out(e); } } @Override public JsonElement toAnnotation() { return null; } @Override public String getAnnotationKey() { return "net.app.core.checkin"; } public static final Creator<CheckinAnnotation> CREATOR = new Creator<CheckinAnnotation>() { @Override public CheckinAnnotation[] newArray(int size) { return new CheckinAnnotation[size]; } @Override public CheckinAnnotation createFromParcel(Parcel source) { return new CheckinAnnotation().createFrom(source); } }; }